package com.carlinfo.userscenter.users.service;

import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;
import com.carlinfo.common.util.PageInfoUtil;
import com.carlinfo.userscenter.users.pojo.AAdmins;
import com.carlinfo.userscenter.users.pojo.ARole;

/**
 * 用户模块的Service
 * 
 * @author wangshMac
 */
public interface IUsersService
{
	/*---- 角色表操作开始 ----*/
	/**
	 * 保存一条角色
	 * @param role	角色对象
	 * @return	返回值是JSON
	 * {
			// 响应码/
			"code":"0",
			//响应码的描述 
			"info":"成功",
			"data":
			{
				//id:
				"id":"",
				//sql语句影响的条数
				"effect":""
			}
		}
	 */
	JSONObject saveOneRoleService(ARole role);
	
	/**
	 * 更新一条角色
	 * @param role	角色对象
	 * @return	返回值是JSON
	 * {
			// 响应码/
			"code":"0",
			//响应码的描述 
			"info":"成功",
			"data":
			{
				//sql语句影响的条数
				"effect":""
			}
		}
	 */
	JSONObject updateOneRoleService(ARole role);
	
	/**
	 * 删除一条角色
	 * @param role	角色对象
	 * @return	返回值是JSON
	 * {
			// 响应码/
			"code":"0",
			//响应码的描述 
			"info":"成功",
			"data":
			{
				//sql语句影响的条数
				"effect":""
			}
		}
	 */
	JSONObject deleteOneRoleService(ARole role);
	
	/**
	 * 查询一条角色
	 * @param condMap	键:名字标识,值:条件的值
	 * @return 查询结果一条角色
	 */
	ARole findOneRoleService(Map<String, Object> condMap);
	
	/**
	 * 查询多条角色
	 * @param condMap	键:名字标识,值:条件的值
	 * @return 查询结果一条角色
	 */
	List<ARole> findCondListRoleService(PageInfoUtil pageInfoUtil ,Map<String, Object> condMap);
	/*---- 角色表操作结束 ----*/
	
	/*---- 管理员表操作开始 ----*/
	/**
	 * 保存一条管理员
	 * @param admins	管理员对象
	 * @return	返回值是JSON
	 * {
			// 响应码/
			"code":"0",
			//响应码的描述 
			"info":"成功",
			"data":
			{
				//id:
				"id":"",
				//sql语句影响的条数
				"effect":""
			}
		}
	 */
	JSONObject saveOneAdminsService(AAdmins admins);
	
	/**
	 * 保存一条管理员,并且处理图片
	 * @param admins
	 * @param condMap
	 * @return
	 */
	JSONObject saveOneAdminsService(AAdmins admins,Map<String, Object> condMap);
	
	/**
	 * 更新一条管理员
	 * @param admins	管理员对象
	 * @return	返回值是JSON
	 * {
			// 响应码/
			"code":"0",
			//响应码的描述 
			"info":"成功",
			"data":
			{
				//sql语句影响的条数
				"effect":""
			}
		}
	 */
	JSONObject updateOneAdminsService(AAdmins admins);
	
	/**
	 * 删除一条管理员
	 * @param admins	管理员对象
	 * @return	返回值是JSON
	 * {
			// 响应码/
			"code":"0",
			//响应码的描述 
			"info":"成功",
			"data":
			{
				//sql语句影响的条数
				"effect":""
			}
		}
	 */
	JSONObject deleteOneAdminsService(AAdmins admins);
	
	/**
	 * 查询一条管理员
	 * @param condMap	键:名字标识,值:条件的值
	 * @return 查询结果一条管理员
	 */
	AAdmins findOneAdminsService(Map<String, Object> condMap);
	
	/**
	 * 查询多条管理员
	 * @param condMap	键:名字标识,值:条件的值
	 * @return 查询结果一条管理员
	 */
	List<AAdmins> findCondListAdminsService(PageInfoUtil pageInfoUtil ,Map<String, Object> condMap);
	/*---- 管理员表操作结束 ----*/
}
